Detecting handling of a device in a vehicle

ABSTRACT

Systems and methods are disclosed for determining whether or not an apparatus, such as a mobile device, is being handled or otherwise used within a vehicle. The apparatus may comprise an accelerometer configured to measure acceleration and a gyroscope configured to measure orientation. The apparatus may determine an axis of gravity of the apparatus based on acceleration measurements made by the accelerometer over a period of time. The apparatus may also determine a rotation vector of the apparatus based on orientation measurements made by the gyroscope. Using the axis of gravity of the apparatus and the rotation vector of the apparatus, the apparatus may determine a rate of rotation of the apparatus perpendicular to the axis of gravity. If the rate of rotation of the apparatus perpendicular to the axis of gravity exceeds a threshold, the apparatus may determine that it is being handled or otherwise used within the vehicle.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/445,871, filed Jun. 19, 2019, entitled “Detecting Handling of aDevice in a Vehicle”, which is a continuation of U.S. patent applicationSer. No. 16/130,607, filed Sep. 13, 2018, entitled “Detecting Handlingof a Device in a Vehicle”, now U.S. Pat. No. 10,375,525 issued on Aug.6, 2019, which is a continuation of U.S. patent application Ser. No.15/851,052, filed Dec. 21, 2017, entitled “Detecting Handling of aDevice in a Vehicle”, now U.S. Pat. No. 10,117,060 issued on Oct. 30,2018, which is a continuation of U.S. patent application Ser. No.14/808,472, filed Jul. 24, 2015, entitled “Detecting Handling of aDevice in a Vehicle”, now U.S. Pat. No. 9,888,392 issued on Feb. 6,2018. Each of the aforementioned applications is incorporated herein byreference in its entirety.

TECHNICAL FIELD

Aspects of the disclosure generally relate to the detection of a devicebeing handled in a vehicle using sensors and computing devices, whichmay be integrated into the device.

BACKGROUND

Drivers may use devices, such as mobile phones, while driving in theirvehicles. Some uses while driving may be helpful, such as using anavigation application to navigate the driver to his or her destination.Some uses of the devices may be dangerous, such as if the driver istexting, playing a game, or taking a picture while driving. Accordingly,there is a need to detect whether a device is being handled in thevehicle.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some aspects of the disclosure. The summary is not anextensive overview of the disclosure. It is neither intended to identifykey or critical elements of the disclosure nor to delineate the scope ofthe disclosure. The following summary merely presents some concepts ofthe disclosure in a simplified form as a prelude to the descriptionbelow.

Aspects of the disclosure relate to systems, methods, and computingdevices configured to provide an apparatus comprising an accelerometerconfigured to measure acceleration of the apparatus, a gyroscopeconfigured to measure orientation of the apparatus, a processor, andmemory. The memory may store computer-executable instructions that, whenexecuted by the processor, cause the apparatus to determine, based onacceleration measurements made by the accelerometer over a period oftime, an axis of gravity of the apparatus. The apparatus may determine,based on orientation measurements made by the gyroscope, a rotationvector of the apparatus. The apparatus may determine, based on the axisof gravity of the apparatus and the rotation vector of the apparatus, arate of rotation of the apparatus perpendicular to the axis of gravity.If the rate of rotation of the apparatus perpendicular to the axis ofgravity exceeds a threshold, the apparatus may determine that theapparatus is being used within a vehicle.

The memory may store computer-executable instructions that, whenexecuted by the processor, cause the apparatus to determine that theapparatus is not being used within the vehicle if the rate of rotationof the apparatus perpendicular to the axis of gravity does not exceedthe threshold. The apparatus may comprise a mobile device in someaspects. The axis of gravity of the apparatus may comprise a first axisof gravity of the apparatus. The memory may store computer-executableinstructions that, when executed by the processor, cause the apparatusto determine a second axis of gravity of the apparatus. In response to adetermination that the second axis of gravity differs from the firstaxis of gravity by more than a threshold amount, the apparatus mayconfirm that the apparatus is being used within the vehicle.

The memory may store computer-executable instructions that, whenexecuted by the processor, cause the apparatus to determine a rate ofrotation of the apparatus parallel to the axis of gravity. In responseto a determination that the rate of rotation of the apparatus parallelto the axis of gravity exceeds a threshold rate of rotation, theapparatus may confirm that the apparatus is being used within thevehicle.

The memory may store computer-executable instructions that, whenexecuted by the processor, cause the apparatus to determine an amount oflateral movement of the apparatus parallel to the axis of gravity. Inresponse to a determination that the amount of lateral movement of theapparatus parallel to the axis of gravity exceeds a threshold amount oflateral movement, the apparatus may confirm that the apparatus is beingused within the vehicle.

The memory may store computer-executable instructions that, whenexecuted by the processor, cause the apparatus to determine whether theapparatus has received a wireless signal from a short-range transmitterin the vehicle. In response to determining that the apparatus hasreceived the wireless signal from the short-range transmitter in thevehicle, the apparatus may confirm that the apparatus is being usedwithin the vehicle.

In some aspects, a system may comprise a mobile device and a server. Themobile device may comprise an accelerometer configured to measureacceleration of the mobile device and an accelerometer configured tomeasure acceleration of the mobile device. The server may comprise aprocessor and memory storing computer-executable instructions that, whenexecuted by the processor, cause the server to determine, based onacceleration measurements made by the accelerometer over a period oftime, an axis of gravity of the mobile device. The server may determine,based on orientation measurements made by the gyroscope, a rotationvector of the mobile device. The server may determine, based on the axisof gravity of the mobile device and the rotation vector of the mobiledevice, a rate of rotation of the mobile device perpendicular to theaxis of gravity. If the rate of rotation of the mobile deviceperpendicular to the axis of gravity exceeds a threshold, the server maydetermine that the mobile device is being used within a vehicle.

A method described herein may comprise determining, based onacceleration measurements made by an accelerometer of a device over aperiod of time, an axis of gravity of the device. The method maycomprise determining, based on orientation measurements made by agyroscope of the device, a rotation vector of the device. Based on theaxis of gravity of the device and the rotation vector of the device, arate of rotation of the device perpendicular to the axis of gravity maybe determined. If the rate of rotation of the device perpendicular tothe axis of gravity exceeds a threshold, the method may comprisedetermining that the device is being used within a vehicle.

Other features and advantages of the disclosure will be apparent fromthe additional description provided herein.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention and theadvantages thereof may be acquired by referring to the followingdescription in consideration of the accompanying drawings, in which likereference numbers indicate like features, and wherein:

FIG. 1 illustrates a network environment and computing systems that maybe used to implement aspects of the disclosure.

FIG. 2 is a diagram illustrating various example components of a devicehandling detection system according to one or more aspects of thedisclosure.

FIG. 3 is a flow diagram illustrating an example method of detectingthat a device is being handled in a vehicle according to one or moreaspects of the disclosure.

FIG. 4 is a flow diagram illustrating an example method of confirmingthat a device is being handled in a vehicle according to one or moreaspects of the disclosure.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration, various embodiments of thedisclosure that may be practiced. It is to be understood that otherembodiments may be utilized.

As will be appreciated by one of skill in the art upon reading thefollowing disclosure, various aspects described herein may be embodiedas a method, a computer system, or a computer program product.Accordingly, those aspects may take the form of an entirely hardwareembodiment, an entirely software embodiment or an embodiment combiningsoftware and hardware aspects. In addition, aspects may take the form ofa computing device configured to perform specified actions. Furthermore,such aspects may take the form of a computer program product stored byone or more computer-readable storage media having computer-readableprogram code, or instructions, embodied in or on the storage media. Anysuitable computer readable storage media may be utilized, including harddisks, CD-ROMs, optical storage devices, magnetic storage devices,and/or any combination thereof. In addition, various signalsrepresenting data or events as described herein may be transferredbetween a source and a destination in the form of electromagnetic wavestraveling through signal-conducting media such as metal wires, opticalfibers, and/or wireless transmission media (e.g., air and/or space).

FIG. 1 illustrates a block diagram of a computing device 101 in a devicehandling detection system 100 that may be used according to one or moreillustrative embodiments of the disclosure. The device handlingdetection computing device 101 may have a processor 103 for controllingoverall operation of the computing device 101 and its associatedcomponents, including RAM 105, ROM 107, input/output module 109, andmemory unit 115. The computing device 101, along with one or moreadditional devices (e.g., terminals 141, 151) may correspond to any ofmultiple systems or devices, such as device handling detection computingdevices or systems, configured as described herein for transmitting andreceiving sensor data, detecting use of a device in the vehicle, andconfirming that the device is being handled. Sensor data can includedata collected from mobile devices (e.g., the driver's mobile phone),vehicle sensors, and/or on-board diagnostic (OBD) systems.

Input/Output (I/O) module 109 may include a microphone, keypad, touchscreen, and/or stylus through which a user of the computing device 101may provide input, and may also include one or more of a speaker forproviding audio input/output and a video display device for providingtextual, audiovisual and/or graphical output. Software may be storedwithin memory unit 115 and/or other storage to provide instructions toprocessor 103 for enabling device 101 to perform various functions. Forexample, memory unit 115 may store software used by the device 101, suchas an operating system 117, application programs 119, and an associatedinternal database 121. The memory unit 115 includes one or more ofvolatile and/or non-volatile computer memory to storecomputer-executable instructions, data, and/or other information.Processor 103 and its associated components may allow the devicehandling detection computing device 101 to execute a series ofcomputer-readable instructions to transmit or receive sensor data,process sensor data, and determine or confirm device handling eventsfrom the sensor data.

The device handling detection computing device 101 may operate in anetworked environment 100 supporting connections to one or more remotecomputers, such as terminals/devices 141 and 151. Device handlingdetection computing device 101, and related terminals/devices 141 and151, may include devices installed in vehicles, mobile devices that maytravel within vehicles, or devices outside of vehicles that areconfigured to receive and process vehicle and other sensor data. Thus,the device handling detection computing device 101 and terminals/devices141 and 151 may each include personal computers (e.g., laptop, desktop,or tablet computers), servers (e.g., web servers, database servers),vehicle-based devices (e.g., on-board vehicle computers, short-rangevehicle communication systems, sensors and telematics devices), ormobile communication devices (e.g., mobile phones, portable computingdevices, and the like), and may include some or all of the elementsdescribed above with respect to the device handling detection computingdevice 101. The network connections depicted in FIG. 1 include a localarea network (LAN) 125 and a wide area network (WAN) 129, and a wirelesstelecommunications network 133, but may also include other networks.When used in a LAN networking environment, the device handling detectioncomputing device 101 may be connected to the LAN 125 through a networkinterface or adapter 123. When used in a WAN networking environment, thedevice 101 may include a modem 127 or other means for establishingcommunications over the WAN 129, such as network 131 (e.g., theInternet). When used in a wireless telecommunications network 133, thedevice 101 may include one or more transceivers, digital signalprocessors, and additional circuitry and software for communicating withwireless computing devices 141 (e.g., mobile phones, short-range vehiclecommunication systems, vehicle sensing and telematics devices) via oneor more network devices 135 (e.g., base transceiver stations) in thewireless network 133.

It will be appreciated that the network connections shown areillustrative and other means of establishing a communications linkbetween the computers may be used. The existence of any of variousnetwork protocols such as TCP/IP, Ethernet, FTP, HTTP and the like, andof various wireless communication technologies such as GSM, CDMA, Wi-Fi,and WiMAX, is presumed, and the various computing devices and devicehandling detection system components described herein may be configuredto communicate using any of these network protocols or technologies.

Additionally, one or more application programs 119 used by the devicehandling detection computing device 101 may include computer executableinstructions (e.g., sensor data analysis programs, device handlingdetection algorithms, and the like) for transmitting and receivingsensor and device handling data and performing other related functionsas described herein.

Sensor data may refer to information pertaining to one or more actionsor events performed by a vehicle and can include aspects of informationidentified or determined from data collected from a vehicle or mobiledevice. Sensor data can include, for example, location data,acceleration data, time data, direction data, mobile device orientationdata, rotation/gyroscopic data, and the like.

FIG. 2 is a diagram illustrating various example components of a devicehandling detection system 200 according to one or more aspects of thedisclosure. The device handling system 200 may include a vehicle 210, amobile computing device 216, other vehicles (not illustrated), ahandling detection server 250, and additional related components. Eachcomponent shown in FIG. 2 may be implemented in hardware, software, or acombination of the two. Additionally, each component of the devicehandling system 200 may include a computing device (or system) havingsome or all of the structural components described above for computingdevice 101. For example, the mobile computing device 216 may comprise aprocessor 103 configured to receive sensor data from the accelerometer218, the gyroscope 220, and other sensors 222. The processor 103 of themobile computing device 216 may process the received sensor data todetermine whether the mobile computing device 216 is being handledwithin a vehicle. As another example, the handling detection computer251 may comprise a processor 103 configured to receive sensor data fromthe accelerometer 218, the gyroscope 220, and other sensors 222 of themobile computing device 216. The processor 103 of the handling detectioncomputer 251 may process the received sensor data to determine whetherthe mobile computing device 216 is being handled within the vehicle.Other examples of the interaction among various components of the devicehandling system 200 will be described below.

Vehicle 210 may be, for example, an automobile, motorcycle, scooter,bus, recreational vehicle, boat, or other vehicle for which sensor ordevice handling data may be collected and analyzed. A mobile computingdevice 216 within the vehicle 210 may be used to collect sensor ordevice handling data (e.g., via accelerometer 218, gyroscope 220, orother sensors 222, such as a camera or microphone) and/or to receivesensor or device handling data from the vehicle 210 (e.g., via vehiclesensors 219). The mobile device 216 may process the data to detect thatthe device is being handled in the vehicle and/or to transmit the sensoror device handling data to the handling detection server 250 or otherexternal computing devices. Mobile computing devices 216 may be, forexample, mobile phones, personal digital assistants (PDAs), tabletcomputers, laptop computers, smartwatches, and other devices that may becarried by drivers or passengers inside or outside of the vehicle 210.The mobile computing device 216 may contain some or all of thehardware/software components as the computing device 101 depicted inFIG. 1.

Software applications executing on the mobile device 216 may beconfigured to receive sensor data from the accelerometer 218 (e.g.,acceleration data), gyroscope 220 (e.g., rotation data, such as speed ofrotation data), and other sensors 222 (e.g., a captured image orrecorded audio) and/or communicate with vehicle sensors 219 or othervehicle communication systems to sense or receive driving data. Whenmobile computing device 216 within the vehicle 210 is used to senserotation, acceleration, and other data, the mobile computing device 216may store, analyze, and/or transmit the data to one or more othercomputing devices. For example, mobile device 216 may transmit datadirectly to handling detection server 250, and thus may be used insteadof sensors or communication systems of the vehicle 210.

The data collected by the mobile device 216 may be stored and/oranalyzed within the mobile device 216. The processing components of themobile computing device 216 may be used to analyze sensor data,determine whether or not the device 216 is being handled by a user, andconfirm whether or not the device 216 is being handled. Additionally oralternatively, the mobile device 216 may transmit, via a wired orwireless transmission network, the data to one or more external devicesfor storage or analysis, such as vehicle computer 214 or handlingdetection server 250. In other words, mobile computing device 216 may beused in conjunction with, or in place of, the vehicle computer 214 orhandling detection server 250 to detect whether the device 216 is beinghandled in the vehicle.

The vehicle computer 214 of the vehicle 210 may contain some or all ofthe hardware/software components as the computing device 101 depicted inFIG. 1. The vehicle computer 214 may receive sensor or device handlingdata from the mobile device 216. For example, vehicle computer 214 mayreceive accelerometer data from the mobile device 216 and use theaccelerometer data to determine, for example, the direction of gravity.The vehicle computer 214 may also receive data from a gyroscope of thedevice 216 to determine, for example, the rate of rotation of the device216. This information may be used to determine whether the device 216 isbeing handled by a user, as will be described in further detail below.Additionally or alternatively, the vehicle computer 214 may act as agateway device between the mobile device 216 and the handling detectionserver 250. For example, the vehicle computer 214 may receive sensordata (or data indicating that the device 216 is being handled) from themobile device 216 and forward the received data to the handlingdetection server 250. The vehicle 210 may include a short-rangecommunication system or devices 212, which will be described in furtherdetail below.

The system 200 may include a handling detection server 250, containingsome or all of the hardware/software components as the computing device101 depicted in FIG. 1. The handling detection server 250 may includehardware, software, and network components to receive data from one ormore vehicles 210 (e.g., via vehicle computer 214), mobile device 216,and other data sources. The handling detection server 250 may include adriving and driver data database 252 and handling detection computer 251to respectively store and analyze data received from vehicles, mobiledevices, and other data sources. The handling detection server 250 mayinitiate communication with and/or retrieve data from vehicle 210wirelessly via vehicle computer 214, mobile device 216, or by way ofseparate computing systems over one or more computer networks (e.g., theInternet).

The handling detection computer 251 may be configured to retrieve datafrom the database 252, or may receive data directly from vehicle 210,mobile device 216, or other data sources. The handling detectioncomputer 251 may perform device handling detection analyses and otherrelated functions, as will be described in further detail in theexamples below. The analyses described herein may be performed entirelyin the handling detection computer 251 of the handling detection server250, entirely in the vehicle computer 214, or entirely in the mobiledevice 216. In other examples, certain analyses may be performed byvehicle computer 214, other analyses may be performed by the handlingdetection computer 251, and yet other analyses may be performed by themobile device 216.

Short-range communication system 212 is a vehicle-based datatransmission system configured to transmit vehicle data to other nearbyvehicles, and to receive vehicle data from other nearby vehicles. Insome examples, communication system 212 may use the dedicatedshort-range communications (DSRC) protocols and standards to performwireless communications between vehicles. In the United States, 75 MHzin the 5.850-5.925 GHz band have been allocated for DSRC systems andapplications, and various other DSRC allocations have been defined inother countries and jurisdictions. However, the short-rangecommunication system 212 need not use DSRC, and may be implemented usingother short-range wireless protocols in other examples, such as WLANcommunication protocols (e.g., IEEE 802.11), Bluetooth (e.g., IEEE802.15.1), or one or more of the Communication Access for Land Mobiles(CALM) wireless communication protocols and air interfaces.

The V2V transmissions between the short-range communication system 212and another vehicle's communication system may be sent via DSRC,Bluetooth, satellite, GSM infrared, IEEE 802.11, WiMAX, RFID, and/or anysuitable wireless communication media, standards, and protocols. Incertain systems, the short-range communication system 212 may includespecialized hardware installed in vehicle 210 (e.g., transceivers,antennas, etc.), while in other examples the communication system 212may be implemented using existing vehicle hardware components (e.g.,radio and satellite equipment, navigation computers) or may beimplemented by software running on the mobile device 216 of drivers andpassengers within the vehicle 210.

The range of V2V communications between vehicle communication systemsmay depend on the wireless communication standards and protocols used,the transmission/reception hardware (e.g., transceivers, power sources,antennas), and other factors. Short-range V2V communications may rangefrom just a few feet to many miles. V2V communications also may includevehicle-to-infrastructure (V2I) communications, such as transmissionsfrom vehicles to non-vehicle receiving devices, for example, tollbooths, rail road crossings, and road-side traffic monitoring devices.Certain V2V communication systems may periodically broadcast data from avehicle 210 to any other vehicle, or other infrastructure device capableof receiving the communication, within the range of the vehicle'stransmission capabilities. For example, a vehicle 210 may periodicallybroadcast (e.g., every 0.1 second, every 0.5 seconds, every second,every 5 seconds, etc.) certain vehicle data via its short-rangecommunication system 212, regardless of whether or not any othervehicles or reception devices are in range. In other examples, a vehiclecommunication system 212 may first detect nearby vehicles and receivingdevices, and may initialize communication with each by performing ahandshaking transaction before beginning to transmit its vehicle data tothe other vehicles and/or devices.

The types of vehicle data transmitted by the vehicle 210 may depend onthe protocols and standards used for the V2V communication, the range ofcommunications, whether device handling has been detected, and otherfactors. In certain examples, the vehicle 210 may periodically broadcastcorresponding sets of similar vehicle driving data, such as the location(which may include an absolute location in GPS coordinates or othercoordinate systems, and/or a relative location with respect to anothervehicle or a fixed point), speed, and direction of travel. In certainexamples, the nodes in a V2V communication system (e.g., vehicles andother reception devices) may use internal clocks with synchronized timesignals, and may send transmission times within V2V communications, sothat the receiver may calculate its distance from the transmitting nodebased on the difference between the transmission time and the receptiontime. The state or usage of the vehicle's 210 controls and instrumentsmay also be transmitted, for example, whether the vehicle isaccelerating, braking, turning, and by how much, and/or which of thevehicle's instruments are currently activated by the driver (e.g., headlights, turn signals, hazard lights, cruise control, 4-wheel drive,traction control, windshield wipers, etc.). Vehicle warnings such asdetection by the vehicle's 210 internal systems that the vehicle isskidding, that an impact has occurred, or that the vehicle's airbagshave been deployed, also may be transmitted in V2V communications.

The mobile computing device 216 may be used instead of, or inconjunction with, short-range communication system 212. For example, themobile device 216 may communicate directly with the other vehicle ordirectly with another mobile device, which may be inside or outside ofthe other vehicle. Additionally or alternatively, the other vehicle maycommunicate location information to vehicle 210, and vehicle 210 may inturn communicate this location information to the mobile device 216. Anydata collected by any vehicle sensor or mobile device 216 sensor may betransmitted via V2V or other communication to other nearby vehicles,mobile devices, or infrastructure devices receiving V2V communicationsfrom communication system 212 or communications directly from mobiledevice 216. Further, additional vehicle driving data not from thevehicle's sensors (e.g., vehicle make/model/year information, driverinformation, etc.) may be collected from other data sources, such as adriver's or passenger's mobile device 216, handling detection server250, and/or another external computer system, and transmitted using V2Vcommunications to nearby vehicles and other transmitting and receivingdevices using communication system 212.

Systems and methods described herein may detect whether a device withina vehicle, such as the mobile computing device 216, is being handled orotherwise used. For example, a user handling the device 216 may bedistinguished from the vehicle 210 making a turn based on data collectedfrom sensors, such as a gyroscope or an accelerometer. The computingdevice 101 (which may be mobile computing device 216) may determine thedirection of gravity relative to the mobile device 216. While a vehiclegenerally rotates about the axis of gravity (e.g., during a turn), themobile device 216 within the vehicle may rotate about any axis.Accordingly, whether the mobile device 216 is being handled may bedetermined based on a comparison of the rate of rotation of the mobiledevice 216 about an axis perpendicular to the axis of gravity to athreshold perpendicular rotation. The previous description is merelyexemplary, and additional examples of the device handling detectionsystem 200 and methods performed by the system are described below.

FIG. 3 is a flow diagram illustrating an example method of detectingthat a device 216 is being handled in a vehicle according to one or moreaspects of the disclosure. The steps illustrated in FIG. 3 may beperformed by a computing device, such as the mobile computing device216, the vehicle computer 214, and/or the handling detection computer251. For the sake of brevity, the steps illustrated in FIG. 3 will bedescribed as being performed by the mobile computing device 216. Theacceleration and rotation data used to make the determination may besensed, respectively, by an accelerometer of the mobile computing device216 and a gyroscope of the mobile computing device 216.

In step 305, a computing device may determine a time period used tomeasure gravity. The time period may be preconfigured in the computingdevice. For example, the time period may comprise 10 seconds, 100seconds or any other time period. In some aspects, the computing devicemay set the time period for taking gravity measurements to occur duringa period of time that the vehicle is expected to traverse over arelatively flat area (e.g., with little elevation or altitude change).For example, the computing device may determine its current elevationbased on Global Positioning System (GPS) satellites, such as bydetermining the distance between one or more satellites and thecomputing device. The computing device may also determine its currentelevation using a barometer. The barometer may be used to measure theair pressure at the computing device. The air pressure may be higher ata lower elevation and lower at a higher elevation (e.g., pressure abovesea level is lower than the pressure at sea level). The computing devicemay also access a database storing elevation information and correlatingthe elevation information to locations around the world. In particular,the computing device may provide its current location (e.g., longitudeand latitude, as measured by GPS, cellular towers, Wi-Fi gateways, etc.)to the database, and the database may return the corresponding elevationto the computing device.

The computing device may determine whether a change in elevation of themobile device in the future is expected to exceed a threshold. Forexample, the computing device may determine the rate of change of theelevation based on two or more consecutive elevation measurements madeby the GPS and/or barometer. If the rate of change of elevation does notexceed a threshold (indicating that the vehicle is not significantlychanging elevation, such as climbing a hill or going downhill), thecomputing device may determine that it may make gravity measurementsduring a time period, as will be described below. The computing devicemay also track the route of the vehicle and determine, based oninformation provided by the database correlating location to elevation,whether the vehicle's elevation will change by more than a thresholdamount for a certain amount of time in the future. If not, the computingdevice may make gravity measurements during a time period, as will bedescribed below. Otherwise, the computing device might wait for anotherwindow to take gravity measurements.

In step 310, the computing device may measure gravity relative to thecomputing device, using, for example an accelerometer of the computingdevice. The computing device may make these measurements during theselected time period, such as periodically during the time period (e.g.,every 100 milliseconds during a 10 second period). The accelerometer mayconstantly register 1 gravity of force (1G) due to the earth'sgravitational pull. In step 315, the computing device may determinewhether the time period has ended. If not (step 315: N), the computingdevice may continue to measure gravity at a predetermined rate. If thetime period has ended (step 315: Y), the computing device may proceed tostep 320.

In step 320, the computing device may determine the direction of gravityrelative to the computing device based on the measurements made duringthe selected time period (e.g., measurements made during a 10 secondwindow). The computing device may take the average of accelerationmeasurements to determine the average magnitude and direction ofgravity. The computing device may then divide the average of theacceleration measurements by the magnitude of the accelerationmeasurement to calculate a unit vector ĝ, which is the direction ofgravity having an x direction component, a y direction component, and az direction component, as indicated in the following expression.ĝ=(g _(x) , g _(y) , g _(z))

The computing device may additionally or alternatively determine thedirection of gravity by taking a plurality of readings, which maycomprise gravity and noise components. The computing device may apply alow pass filter to remove the noise components. Moreover, the directionof gravity relative to the computing device may be recalculated at anypoint in time. For example, the computing device may recalculate thedirection of gravity if it has been determined that the computing devicewas handled or has accelerated enough to have changed position, as willbe described in further detail below. After a significant acceleration(e.g., acceleration that exceeds a threshold acceleration), thecomputing device may have moved and consequently the direction ofgravity may have changed. The computing device may recalculate thedirection of gravity after such a move by the device.

In step 325, the computing device may determine the rotation (alsoreferred to as angular velocity) of the computing device, {right arrowover (ω)}, which may comprise a vector having a particular length. Thecomputing device may determine the rotation {right arrow over (ω)} usinga gyroscope. The rotation {right arrow over (ω)} may have an x directioncomponent, a y direction component, and a z component direction, asindicated in the following expression.

=(ω_(x), ω_(y), ω_(z))

The rotation vector may identify the rotation of the computing deviceabout each axis (x axis, y axis, and z axis). The rotation (or angularvelocity)

may comprise a vector component parallel to the direction of gravity,

_(parallel), and a vector component perpendicular to the direction ofgravity,

_(perp), as indicated in the following expression.

=

_(perp)+

_(parallel)

In step 330, the computing device may determine the magnitude ofrotation of the computing device, ||

_(perp)||, that is perpendicular to the direction of gravity. Thecomponent perpendicular to the direction of gravity,

_(perp), may be used to determine whether the computing device is beinghandled, as indicated in the following expression.

_(perp) =

−

_(parallel)

The dot product of a vector and a unit vector is the length of thevector that lies in the direction of the unit vector. Accordingly, therate of rotation parallel to (or along) the axis of gravity (

_(parallel)) may comprise the dot product of the rotation vector with ĝ,as indicated in the following expression.

_(perp) =

−(

·ĝ) * ĝ

The computing device may determine the magnitude of the rotationperpendicular to the direction of gravity (||

_(perp)||) as follows:

${{\overset{\rightharpoonup}{\omega}}_{perp}} = {{\overset{\rightharpoonup}{\omega} - {\overset{\rightharpoonup}{\omega}}_{parallel}}}$${{\overset{\rightharpoonup}{\omega}}_{perp}} = {{\overset{\rightharpoonup}{\omega} - {\left( {\overset{\rightharpoonup}{\omega} \cdot \hat{g}} \right)*\hat{g}}}}$${{\overset{\rightharpoonup}{\omega}}_{perp}} = \sqrt{\sum\limits_{x,y,z}\;\left\lbrack {\omega_{i} - {\left( {{\omega_{x}*g_{x}} + {\omega_{y}*g_{y}} + {\omega_{z}*g_{z}}} \right)*g_{i}}} \right\rbrack^{2}}$

In other words, the computing device may compute the sum over the x, y,and z components to determine the length of the vector

_(perp).

In step 335, the computing device may determine whether the magnitude(or length) of rotation perpendicular to the direction of gravity (||

_(perp)||) exceeds a threshold. In other words, the computing device mayuse the magnitude of rotation perpendicular to the direction of gravityto distinguish between the computing device being handled and othertypes of motion. Various models may be used to distinguish betweenhandling and non- handling events. An exemplary threshold value may be 2radians/second. If the magnitude does not exceed the threshold (step335: N), the computing device may determine, in step 340, that thecomputing device is not being handled by a user. On the other hand, ifthe magnitude exceeds the threshold (step 335: Y), the computing devicemay optionally determine, in step 345, whether to confirm that thecomputing device is being handled by the user. If not (step 345: N), thecomputing device may determine that the computing device is beinghandled by the user in step 350. If the computing device determines toconfirm that the device is being handled (step 345), the computingdevice may proceed to perform one or more of the steps illustrated inFIG. 4.

FIG. 4 is a flow diagram illustrating an example method of confirmingthat a device is being handled in a vehicle according to one or moreaspects of the disclosure. The steps illustrated in FIG. 4 may beperformed by a computing device, such as the mobile computing device216, the vehicle computer 214, and/or the handling detection computer251. For the sake of brevity, the steps illustrated in FIG. 4 will bedescribed as being performed by the mobile computing device 216.

In step 405, the computing device may determine whether the direction ofgravity has changed relative to the baseline direction of gravitydetermined in step 320. An accelerometer of the computing device may beused to determine the current direction of gravity. If the currentdirection of gravity deviates from the baseline direction of gravity bya threshold (step 405: Y), the computing device may determine that thecomputing device is being handled in step 350. The threshold maycomprise an angle, such as

$\frac{\pi}{8}$radians, and the computing device may determine that the device is beinghandled if the change in direction of gravity exceeds

$\frac{\pi}{8}$radians. The threshold may additionally or alternatively be measured bythe dot product of vectors, which as explained above may comprise unitvectors. The dot product of the threshold angle of

$\frac{\pi}{8}$radians may be cos (

$\left( \frac{\pi}{8} \right.$radians) or 0.92 . The computing device may determine that the device isbeing handled if the dot product of the gravity vectors exceeds 0.92.The angle of

$\frac{\pi}{8}$radians is exemplary, and the computing device may use any change inangle to confirm that the device is being handled. If the currentdirection of gravity does not deviate from the baseline direction ofgravity by more than a threshold (step 405: N), the computing device mayoptionally proceed to step 410 to confirm handling of the device usinganother method.

In step 410, the computing device may determine whether the magnitude ofrotation parallel to (in the direction of) the direction of gravityexceeds a threshold. When a vehicle turns, it rotates about an axisparallel to the direction of gravity. As such, a mere rotation in thedirection of gravity of the computing device (which may be inside thevehicle) would not necessarily indicate that the computing device isbeing handled. However, a rotation of the computing device in thedirection of gravity beyond the rate of rotation typically caused by thevehicle turning may indicate that the parallel rotation is being causedby a user handling the computing device and not the vehicle turning.Accordingly, a threshold rate of rotation in the direction of gravitymay be used to confirm that the computing device is being handled.

The magnitude of rotation parallel to the direction of gravity (||

_(parallel)||) may be expressed as follows:||

_(parallel)||=||

·ĝ) * ĝ||

As previously explained, a gyroscope of the computing device may be usedto determine the rotation of the computing device. The computing devicemay compare the magnitude of rotation parallel to the direction ofgravity to a threshold magnitude. For example, the threshold magnitudemay be 3 radians/second (or any other value). If it exceeds thethreshold (step 410: Y), the computing device may determine that thecomputing device is being handled in step 350. On the other hand, if themagnitude of rotation parallel to the direction of gravity does notexceed the threshold (step 410: N), the computing device may optionallyproceed to step 415 to confirm handling of the device using anothermethod.

In step 415, the computing device may determine whether movement in thedirection of gravity (e.g., lateral to the direction of gravity) exceedsa threshold. In particular, the computing device may compare the currentmagnitude of gravity (

) with the magnitude of gravity previously measured by the accelerometerof the computing device. If the current magnitude exceeds the magnitudeof gravity previously measured by more than a threshold amount (step415: Y), this indicates that acceleration has occurred along thedirection of gravity and the computing device may determine that thecomputing device is being handled in step 350. An exemplary thresholdvalue may be

$2{\frac{m}{s^{2}}.}$Otherwise (step 415: N), the computing device may optionally proceed tostep 420 to confirm handling of the device using another method.Significant movement in the direction of gravity may indicate devicehandling because vehicles typically do not move significantly in thedirection of gravity.

In step 420, the computing device may determine whether movement of thedevice deviates from a baseline movement of the vehicle. The computingdevice may retrieve a previous driving pattern for the vehicle. Theprevious driving pattern may have been measured by a device in thevehicle or the vehicle's sensors. If the current movement of thecomputing device deviates from the previous driving pattern for thevehicle by more than a threshold amount (step 420: Y), the computingdevice may determine that the computing device is being handled in step350. Otherwise (step 420: N), the computing device may optionallyproceed to step 425 to confirm handling of the device using anothermethod. Machine learning techniques performed on vehicle data may beused to reveal typical ways in which vehicles accelerate and rotate. Forexample, when a driver makes a right turn, the driver usually slows downbefore the turn starts and accelerates during the turn. If the computingdevice detected a signal that looked like a typical right turn, butacceleration occurred before the turn started, the computing device maydetermine that this was not actually a right turn, but device handling.The comparison may be made by generating metrics to those describedabove and using them to define a typical driving pattern, and adifference measurement may be used to determine when the vehicledeviated from the typical driving pattern.

In step 425, the computing device may determine whether an indicatorindicates that the computing device is otherwise being used. Thecomputing device may track whether a particular application on thecomputing device is active (or otherwise being used). For example, thecomputing device may determine whether a texting application on thedevice is open or otherwise being used. The computing device maydetermine whether a game application on the device is open or otherwisebeing used. The computing device may make the same determination forother applications that typically should not be used while driving, suchas an email application, a voice application, a news application, asocial media application, a camera application, etc. The computingdevice may additionally or alternatively determine whether a user isinteracting with the computing device, such as by pressing or otherwiseproviding input to a touchscreen display of the computing device. If aparticular application is being used or a user is interacting with thecomputing device (step 425: Y), the computing device may determine thatthe computing device is being handled in step 350. Otherwise (step 425:N), the computing device may optionally proceed to step 430 to confirmhandling of the device using another method.

In step 430, the computing device may determine whether the computingdevice is inside a vehicle. The computing device may determine that thecomputing device is inside the vehicle based on a communication (e.g., ahandshake) between the computing device and the vehicle. Thecommunication may be made via a short-range wireless transmission, suchas Bluetooth (e.g., Bluetooth Low Energy). A Bluetooth beacon may beplaced inside or on the vehicle, such as on the visor, on a mobiledevice cradle within the car, in an owner's manual that is typicallyplaced in the dashboard, in the dashboard, on the license plate, on acar seat, or anywhere else within or on the vehicle. In some aspects,components in the vehicle, such as on-board sensors/transmitters, mayhave built-in Bluetooth capabilities. The short-range wirelesstransmitter may transmit any signal that identifies the vehicle (e.g., aVIN, license plate number, make/model/year, etc.) and/or that thecomputing device is otherwise within range (e.g., inside) of thevehicle. If the computing device determines that it is inside thevehicle based on the received signal (step 430: Y), the computing devicemay determine that the computing device is being handled in step 350.Otherwise (step 430: N), the computing device may determine that thecomputing device is not being handled in step 340 (e.g., that it cannotconfirm that the device is being handled).

The computing device may use other sensors in the computing device, suchas a microphone or a camera to determine that the computing device isinside a vehicle in step 430. For example, the computing device may turnon its microphone and listen for vehicle noises, such as engine soundsor sounds caused by the turn signal. As another example, the computingdevice may capture an image with its camera and determine whether theimage corresponds to an interior of the vehicle, such as a vehicle seat,a vehicle dashboard, a steering wheel, a headrest, a vehicle door frame,etc. If the audio captured by the microphone or the image captured bythe camera indicate that the computing device is inside the vehicle(step 430: Y), the computing device may determine that the computingdevice is being handled in step 350. Otherwise (step 430: N), thecomputing device may determine that the computing device is not beinghandled in step 340 (e.g., that it cannot confirm that the device isbeing handled).

In addition to determining whether the device is inside the vehicle, thecomputing device may determine whether the driver or a passenger ishandling the device. For example, the computing device may determinewhich beacon inside or on the vehicle is the closest beacon. If, forexample, the beacon on the driver's visor is the closest beacon, thecomputing device may determine that the driver is handling the device.On the other hand, if the beacon near the rear end of the vehicle is theclosest or in the front passenger compartment is the closest beacon, thecomputing device may determine that a passenger is handling the device.The computing device may similarly use the microphone or camera todetermine whether the passenger or driver is handling the device. Ingeneral, a passenger handling the device is okay, but a driver handlingthe device while driving is not okay. Accordingly, the computing devicemay determine that the computing device is being handled in step 350 ifit determines that the driver is handling the device. Otherwise, thecomputing device may determine that the computing device is not beinghandled in step 340 if it determines that a passenger is handling thedevice.

Any of the determinations previously described in steps 335, 405, 410,415, 420, 425, and 430 may be used to make the initial determination ofwhether the computing device is being handled in a vehicle. Similarly,any one or more of these determinations may optionally be performed toconfirm (after the initial determination) that the computing device isbeing handled in the vehicle.

A computing device may use device handling data for various purposes.First, the computing device may perform various determinations inresponse to determining that the device was handled (e.g., step 350).The computing device may determine whether the vehicle was moving whilethe device was being handled. For example, the computing device may useGPS, cellular towers, Wi-Fi gateways, and the like to determine whetherthe vehicle was moving and/or the speed at which the vehicle was movingat the time of the handling event. If the vehicle was moving (or wasmoving at a speed greater than a threshold speed, such as 10 MPH), thecomputing device may use the information to adjust an insurance policyand/or risk rating for the vehicle owner. The computing device may alsodetermine the frequency of handling events per mile, per hour, and/orper trip. The frequency may also be used to adjust the insurance policyand/or risk rating. The device handling data may also be used toidentify false positives in crash detection. For example, if a crash isdetected, the computing device may check the device handling data toconfirm (or not) the crash.

The computing device, such as the mobile device, may communicate tonearby vehicles or drivers (e.g., within a threshold radius or distance)that the mobile device is being handled. For example, the mobile devicemay send a notification to other nearby mobile devices of vehicledevices. A central computing device may additionally or alternativelyreceive the handling data from the mobile device and send thenotification to mobile devices or vehicle devices of nearby drivers.Accordingly, other drivers may be warned of potential unsafe driving.

A computing device, such as the mobile device, may perform variousdeterminations in response to determining that the device was nothandled (e.g., step 340). For example, in response to determining thatthe device is not being handled (and thus remains relatively stationaryin the vehicle), the mobile device (or other computing device) may beused to detect braking events for the vehicle. The mobile device maydetermine a rotation matrix used to align the mobile device's coordinatesystem with the vehicle's coordinate system. The mobile device may thenmonitor for a large acceleration (e.g., greater than a threshold) in thedirection backwards from the driver.

While the aspects described herein have been discussed with respect tospecific examples including various modes of carrying out aspects of thedisclosure, those skilled in the art will appreciate that there arenumerous variations and permutations of the above described systems andtechniques that fall within the spirit and scope of the invention.

What is claimed is:
 1. A method comprising: determining, by a computingdevice, based on a direction of gravity of an apparatus and a rotationvector of the apparatus, a rate of rotation of the apparatusperpendicular to the direction of gravity; determining that the rate ofrotation of the apparatus perpendicular to the direction of gravityexceeds a threshold; determining to take one or more additional steps toconfirm that the apparatus is being handled within a vehicle, whereinthe one or more additional steps comprise: determining that anapplication running on the apparatus is being open or used; and based onthe determination that the rate of rotation of the apparatusperpendicular to the direction of gravity exceeds the threshold andbased on the one or more additional steps, determining that theapparatus is being used within the vehicle.
 2. The method of claim 1,wherein the application comprises one or more of a game application, anemail application, a voice application, a news application, a socialmedia application, or a camera application.
 3. The method of claim 1,wherein the one or more additional steps comprise: determining that atouchscreen display of the apparatus is receiving user input.
 4. Themethod of claim 1, wherein the direction of gravity of the apparatus isdetermined based on acceleration measurements made by an accelerometerover a period of time.
 5. The method of claim 1, wherein the rate ofrotation of the apparatus perpendicular to the direction of gravity isdetermined based on orientation measurements made by a gyroscope.
 6. Themethod of claim 1, further comprising: determining a frequency at whichthe apparatus is being used in the vehicle; and based on the frequency,determining a risk rating for a user associated with the vehicle.
 7. Themethod of claim 1, wherein the apparatus comprises a mobile device. 8.An apparatus comprising: a processor; and memory storingcomputer-executable instructions that, when executed by the processor,cause the apparatus to: determine, based on a direction of gravity ofthe apparatus and a rotation vector of the apparatus, a rate of rotationof the apparatus perpendicular to the direction of gravity; determinethat the rate of rotation of the apparatus perpendicular to thedirection of gravity exceeds a threshold; determine to take one or moreadditional steps to confirm that the apparatus is being handled within avehicle, wherein the one or more additional steps comprise: determiningthat an application running on the apparatus is being open or used; andbased on the determination that the rate of rotation of the apparatusperpendicular to the direction of gravity exceeds the threshold andbased on the one or more additional steps, determine that the apparatusis being used within the vehicle.
 9. The apparatus of claim 8, whereinthe application comprises one or more of a game application, an emailapplication, a voice application, a news application, a social mediaapplication, or a camera application.
 10. The apparatus of claim 8,wherein the one or more additional steps comprise: determining that atouchscreen display of the apparatus is receiving user input.
 11. Theapparatus of claim 8, wherein the direction of gravity of the apparatusis determined based on acceleration measurements made by anaccelerometer over a period of time.
 12. The apparatus of claim 8,wherein the rate of rotation of the apparatus perpendicular to thedirection of gravity is determined based on orientation measurementsmade by a gyroscope.
 13. The apparatus of claim 8, wherein the memorystoring computer- executable instructions that, when executed by theprocessor, cause the apparatus to: determine a frequency at which theapparatus is being used in the vehicle; and based on the frequency,determine a risk rating for a user associated with the vehicle.
 14. Theapparatus of claim 8, wherein the apparatus comprises a mobile device.15. A system comprising: an apparatus comprising: an accelerometerconfigured to measure acceleration of the apparatus, and a gyroscopeconfigured to measure orientation of the apparatus; and a computingdevice comprising: a processor; and memory storing computer-executableinstructions that, when executed by the processor, cause the computingdevice to: determine based on a direction of gravity of the apparatusand a rotation vector of the apparatus, a rate of rotation of theapparatus perpendicular to the direction of gravity; determine that therate of rotation of the apparatus perpendicular to the direction ofgravity exceeds a threshold; determine to take one or more additionalsteps to confirm that the apparatus is being handled within a vehicle,wherein the one or more additional steps comprise: determining that anapplication running on the apparatus is being open or used; and based onthe determination that the rate of rotation of the apparatusperpendicular to the direction of gravity exceeds the threshold andbased on the one or more additional steps, determine that the apparatusis being used within the vehicle.
 16. The system of claim 15, whereinthe application comprises one or more of a game application, an emailapplication, a voice application, a news application, a social mediaapplication, or a camera application.
 17. The system of claim 15,wherein the one or more additional steps comprise: determining that atouchscreen display of the apparatus is receiving user input.
 18. Thesystem of claim 15, wherein the direction of gravity of the apparatus isdetermined based on acceleration measurements made by the accelerometerover a period of time.
 19. The system of claim 15, wherein the rate ofrotation of the apparatus perpendicular to the direction of gravity isdetermined based on orientation measurements made by the gyroscope. 20.The system of claim 15, wherein the apparatus comprises a mobile device.